﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.DataProtection;

namespace CozeDomain.Models
{
    public class RepGetBotInfo
    {
        public long code { get; set; }
        public string msg { get; set; }
        public BotInfo data { get; set; }
        public ResponseDetail detail { get; set; }
    }
    public class BotInfo
    {

    }
    public class ResponseDetail
    {
        public string bot_id { get; set; }
        public string name { get; set; }
        public string description { get; set; }
        public string icon_url { get; set; }
        public string create_time { get; set; }
        public string update_time { get; set; }
        public string version { get; set; }
        public PromptInfo prompt_info { get; set; }
        public PromptInfo onboarding_info { get; set; }
        public int bot_mode { get; set; }
        public List<PluginInfo> plugin_info_list { get; set; }
        public List<ModelInfo> model_info { get; set; }
        public List<ModelInfo> knowledge { get; set; }

        public List<Voice> voice_info_list { get; set; }
        public List<ShortcutCommandInfo> shortcut_commands { get; set; }
        public List<SuggestReplyInfo> suggest_reply_info { get; set; }
        public List<WorkflowInfo> workflow_info_list { get; set; }
        public List<BackgroundImageInfo> background_image_info { get; set; }
        public string default_user_input_type { get; set; }
    }
    public class PromptInfo
    {
        public string prompt { get; set; }
    }
    public class OnboardingInfoV2
    {
        public string prologue { get; set; }
        public List<string> suggested_questions { get; set; }
    }
    public class PluginInfo
    {
        public int plugin_id { get; set; }
        public string name { get; set; }
        public string icon_url { get; set; }
        public string description { get; set; }
        public List<ApiInfo> api_info_list { get; set; }
    }
    public class ApiInfo
    {
        public string apiId { get; set; }
        public string name { get; set; }
        public string description { get; set; }
    }
    public class ModelInfo
    {
        public int top_k { get; set; }
        public double top_p { get; set; }
        public string model_id { get; set; }
        public int max_tokens { get; set; }
        public double temperature { get; set; }
        public int context_round { get; set; }
        public string response_format { get; set; }
        public double presence_penalty { get; set; }
        public double frequency_penalty { get; set; }
    }
    public class CommonKnowledge
    {
        public List<KnowledgeInfo> knowledge_infos { get; set; }
    }

    public class KnowledgeInfo
    {
        public string id { get; set; }
        public string name { get; set; }
    }
    public class Voice
    {
        public string voice_id { get; set; }
        public string language_code { get; set; }
    }
    public class ShortcutCommandInfo
    {
        public string id { get; set; }
        public string name { get; set; }
        public string command { get; set; }
        public string agent_id { get; set; }
        public string icon_url { get; set; }
        public string description { get; set; }
        public string query_template { get; set; }
        public List<ShortcutCommandComponent> components { get; set; }
        public List<ShortcutCommandToolInfo> tool { get; set; }
    }
    public class ShortcutCommandComponent
    {
        public string name { get; set; }
        public string type { get; set; }
        public bool is_hide { get; set; }
        public string description { get; set; }
        public string default_value { get; set; }
        public string tool_parameter { get; set; }
        public List<string> options { get; set; }
    }
    public class ShortcutCommandToolInfo
    {
        public string name { get; set; }
        public string type { get; set; }
    }
    public class SuggestReplyInfo
    {
        public string reply_mode { get; set; }
        public string customized_prompt { get; set; }
    }
    public class WorkflowInfo
    {
        public string id { get; set; }
        public string name { get; set; }
        public string icon_url { get; set; }
        public string description { get; set; }
    }
    public class BackgroundImageInfo
    {
        public BackgroundImageDetail web_background_image { get; set; }
        public BackgroundImageDetail mobile_background_image { get; set; }
    }
    public class BackgroundImageDetail
    {
        public string image_url { get; set; }
        public string theme_color { get; set; }
        public CanvasPosition canvas_position { get; set; }
        public GradientPosition gradient_position { get; set; }

    }
    public class CanvasPosition
    {
        public double top { get; set; }
        public double left { get; set; }
        public double width { get; set; }
        public double height { get; set; }
    }
    public class GradientPosition
    {
        public double left { get; set; }
        public double right { get; set; }
    }
}
